package myTeam.timeShop.dao.impl;

import java.util.List;


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import myTeam.timeShop.bean.TbUser;
import myTeam.timeShop.dao.UserDao;

@Repository("userDao")
public class UserDaoImpl implements UserDao {
	@Autowired
	SessionFactory sessionFactory;
	

	private Session getCurrentSession() {  
        return this.sessionFactory.getCurrentSession();  
    }
	
	public TbUser load(String id) {
		// TODO 自动生成的方法存根
		return this.getCurrentSession().load(TbUser.class, Integer.valueOf(id));
	}


	public TbUser get(String id) {
		// TODO 自动生成的方法存根
		return this.getCurrentSession().get(TbUser.class, Integer.valueOf(id));
	}

	@SuppressWarnings("unchecked")
	public List<TbUser> findAll() {
		// TODO 自动生成的方法存根
		return this.getCurrentSession().createQuery("from TbUser").list();
	}


	public void persist(TbUser entity) {
		// TODO 自动生成的方法存根
		this.getCurrentSession().persist(entity);
	}


	public String save(TbUser entity) {
		// TODO 自动生成的方法存根
		return this.getCurrentSession().save(entity).toString()+"";
	}


	public void saveOrUpdate(TbUser entity) {
		// TODO 自动生成的方法存根
		this.getCurrentSession().saveOrUpdate(entity);
	}


	public void delete(String id) {
		// TODO 自动生成的方法存根
		this.getCurrentSession().delete(id);
	}


	public void flush() {
		// TODO 自动生成的方法存根

	}

	@SuppressWarnings("unchecked")
	@Override
	public List<TbUser> findByAccountAndPassword(String account, String password) {
		// TODO 自动生成的方法存根
		System.out.print(account+password);
		return this.getCurrentSession().createQuery("from TbUser where userAccount = ? and userPassword = ?").setString(0, account).setString(1, password).list();
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.UserDao#isExistByUserAccount(java.lang.String)
	 */
	@Override
	public Long isExistByUserAccount(String userAccount) {
		// TODO 自动生成的方法存根
		return (Long) this.getCurrentSession().getNamedQuery("isExistByUserAccount").setString(0, userAccount).uniqueResult();
	}

}
